Gitlab CI|CD初探

项目中现在使用了 gitlab 的 webhook 进行自动部署,最近看了下 CI/CD, 觉得也可以使用这个进行自动化部署,但是最后还是放弃了,主要原因是现在的自动化部署相对比较成熟,已经满足了绝大部分的需求,更换为 CI/CD 方式体验不一定会变得更好。

下面介绍几个相关概念:

Pipeline(流水线)

当我们进行push, merge等操作时,都会触发 Pipeline

Stages(时期)

每个 Pipeline 包含三个 stage 阶段(build, test, deploy),前一个 stage 阶段失败,后面就会不再执行,代表这个构建任务 - Pipeline 失败。

Jobs(任务)

每隔 stage 阶段里可以有若干的 job,相同 stage 阶段中的 job 是并行执行的,该 stage 阶段下的所有 job 都执行成功后这个 stage 阶段才通过,继续执行下一阶段,否则构建任务失败。

Runner

jobs 需要 runner 去执行,我们可以使用 gitlab 提供的 runner 去执行我们的 job, 也可以自己注册,注册时可以进行一些配置,成功注册后也可以去 tomal 配置文件里修改之前的配置。在 job 中可以指定 tag 去对应 tag 的 runner 上执行, runner 也可以配置接收所有 tag 的 job。

.gitlab-ci.yml

这个文件来配置我们构建过程,配置成功后,再次 push、merge 等操作只要触发了在 job 中配置的事件,就会去 runner 上执行对应的 job 脚本。